Software testing checks whether or not software operates as intended. When software does not operate as intended, yielding unexpected results, this is due to defects in the software. The correction of these defects, and the introduction of new features or the enhancement of existing features, may introduce new defects into the software. Repeated testing improves the likelihood of catching defects soon after their introduction.
Manually testing software, by having a person operate the software, provide inputs to the software, and examine the behavior and outputs of the software, may be appropriate in certain situations because it provides immediate benefits. However, in the long run, it is tedious for the person and an inefficient use of the person's time and effort. Consequently, automated tests that are planned in advance and run without human intervention are popular, since repeated testing is performed quickly and efficiently.
A company's test designers may have created dozens and even thousands of tests for its software. These suites of tests encompass valuable knowledge of the software, user scenarios, and expected configurations. If a test results in the failure of the software, information captured from the computer up to and at the time the software failed is stored for further analysis.
The volume of software failures associated with a given test suite may be huge, even though a relatively small number of defects in the software are causing the failures. The order in which these software failures are presented to the person or people who are supposed to analyze them may bear no relation whatsoever to the causes of the failures, thus complicating the analysis.